IO Memory Management Units play an important role in memory access operations. An input/output memory management unit (IOMMU) is a memory management unit (MMU) that connects a DMA-capable I/O bus to the main memory. Like a traditional MMU, which translates CPU-visible virtual addresses to physical addresses, the IOMMU maps device-visible virtual addresses (also called device addresses or I/O addresses in this context) to physical addresses. Some units also provide memory protection from faulty devices. An example IOMMU is the graphics address remapping table (GART) used by AGP (Accelerated Graphics Port) and PCI Express graphics cards. I/O virtualization is not performed by the CPU, but instead by a chipset.